import {
	mapState
} from 'vuex';
import config from "@/request/config.js"
export const mixin = {
	data() {
		return {
			systemInfo: this.systemInfo,
			baseUrl:config.baseUrl
		}
	},

	computed: {
		...mapState({
			userInfo: state => state.user.userInfo, //当前登录用户信息
		}),
	},
	methods: {
		/**
		 * 验证用户是否登录
		 */
		checkLogin() {
			if (uni.getStorageSync('token')) return true;
			return false;
		},
		/**
		 * 该跳转是否需要用户登录后在执行
		 * @param {String} link 跳转链接
		 */
		memberLinkTo(link) {
			if (this.checkLogin()) {
				this.goLink(link)
			} else {
				uni.showModal({
					confirmColor: "#FFDB33",
					content: `需要您登录，确认是否去登录？`,
					success: (t) => {
						if (t.confirm) {
							this.goLink('/pages/login/index')
						}
					}
				})
			}
		},
		/**
		 * 公共的预览图片
		 * @param {String} current  当前图片
		 * @param {String} urls  图片列表
		 */
		// previewImage(current, urls) {
		// 	uni.previewImage({
		// 		current: current,
		// 		urls: urls,
		// 	});
		// },
		
		/**
		 * 公共的复制内容到剪贴板
		 * @param {String} content  要复制的内容
		 */
		copyTxt(content) {
			uni.setClipboardData({
				data: content,
				success: () => {
					uni.showToast({
						icon: 'none',
						title: '复制成功'
					})
				}
			})
		},
		
		/**
		 * 公共的拨打电话方法
		 * @param {String} phone  手机号码
		 */
		telPhone(phone) {
			uni.makePhoneCall({
				phoneNumber: phone
			});
		},

		/**
		 * 根据经纬度查看地图位置
		 * @param {String} latitude  纬度
		 * @param {String} longitude  经度
		 * @param {String} name     定位名称
		 * @param {String} address  定位详细地址
		 */
		locationAct(latitude, longitude, name, address) {
			uni.openLocation({
				latitude: parseFloat(latitude),
				longitude: parseFloat(longitude),
				name: name,
				address: address
			});
		},
		/**
		 * 公共的跳转方法 
		 * @param {String} link 跳转链接
		 * @param {String} openType 跳转类型（navigate默认 back 返回上一页  web 跳转web-view其他h5链接  redirect 等等）
		 */
		goLink(url, openType = "navigate") {
			if (openType == 'back') {
				uni.navigateBack({
					delta: 1,
				})
			} else {
				if (!url) {
					return !1;
				} else {
					if (openType == 'web') {
						this.goLink(`/pages/web/web?url=${encodeURIComponent(url)}`) //暂时没用
					} else if (openType == 'redirect') {
						uni.redirectTo({
							url: url
						})
					} else if (openType == 'switch') {
						uni.switchTab({
							url: url
						})
					} else {
						getCurrentPages().length > 8 ? this.goLink(url, 'redirect') : uni.navigateTo({
							url: url
						})
					}
				}
			}
		},
		/**
		 * 字典匹配数据
		 * @param {String} list  字典列表
		 * @param {String} value  字典值
		 */
		getDictionaryName(list,value){
			let findItem = list.find((item) => {
				return item.dictValue == value
			})
			return findItem ? findItem.dictLabel : ''
		}
	}
}
